package com.quan.mall.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;


import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import javax.validation.constraints.NotNull;
import com.quan.commons.core.bean.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 会员
 *
 * @author yhaoquan
 * @email yhaoquan@163.com
 * @date 2021-04-08 11:55:16
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@TableName("ums_member")
public class UmsMember extends BaseEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * id
	 */
    @TableId
    private Long id;

	/**
	 * 代理商ID
	 */
    private Long agentId;

	/**
	 * 会员openid
	 */
    private String openid;

	/**
	 * 会员昵称
	 */
    private String nickname;

	/**
	 * 登录账号
	 */
    private String username;

	/**
	 * 登录密码
	 */
    private String password;

	/**
	 * 安全码
	 */
    private String secret;

	/**
	 * 推荐会员ID
	 */
    private Long refereeMemberId;

	/**
	 * 推荐会员昵称
	 */
    private String refereeMemberName;

	/**
	 * 推荐会员微信openid
	 */
    private String refereeMemberOpenId;

	/**
	 * 会员注册来源：1->微信商城，2->小程序商城，3->微信营销活动，4->小程序营销活动，5->安卓App，6->苹果App
	 */
    private Integer regSrc;

	/**
	 * 手机号
	 */
    private String mobile;

	/**
	 * 邮箱
	 */
    private String email;

	/**
	 * 头像
	 */
    private String avatar;

	/**
	 * 会员等级ID
	 */
    private Long levelId;

	/**
	 * 性别：0->保密，1->男，2->女
	 */
    private Integer sex;

	/**
	 * 生日
	 */
    @DateTimeFormat(pattern = "yyyy-MM-dd ")
    private LocalDate birth;

	/**
	 * 积分
	 */
    private Integer integration;

	/**
	 * 成长值
	 */
    private Integer growth;

	/**
	 * 会员标记：1->内部员工，2->外部分销
	 */
    private Integer memberFlag;

	/**
	 * 会员类型：1->游客，2->普通会员，3->VIP会员，4->业务代理，5->砖石会员;注：需与级别中的level同步，5->代理商
	 */
    private Integer type;

	/**
	 * 会员推荐码
	 */
    private String code;

	/**
	 * 省份/直辖市
	 */
	private String province;

	/**
	 * 城市
	 */
	private String city;

	/**
	 * 区
	 */
	private String district;

	/**
	 * 会员有效期
	 */
    @DateTimeFormat(pattern = "yyyy-MM-dd ")
    private LocalDate expire;

	/**
	 * 启用状态：1->正常，2->禁用
	 */
    private Integer status;

	/**
	 * 升级次数
	 */
	private Integer upgradeCount;

	/**
	 * 创建时间
	 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime ctime;

	/**
	 * 最后更新时间
	 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime utime;


}
